<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script src="https://cdn.bootcdn.net/ajax/libs/axios/1.3.6/axios.js"></script>
    <script>
        // async await基本使用

        // ============================== 核心 ==============================
        // 1. async用于修饰一个函数, 表示一个函数是异步的
        //     如果async函数内没有await, 那么async没有意义的, 全是同步的内容
        //     只有遇到了await开始往下, 才是异步的开始
        // 2. await 要用在 async 函数中
        // 3. await 后面一般会跟一个promise对象,  await会阻塞async函数的执行,
        //     直到等到 promise成功的结果(resolve的结果)
        // 4. await 只会等待 promise 成功的结果, 如果失败了会报错, 需要 try catch



        // ============================== 核心1 ==============================
        // 1. async用于修饰一个函数, 表示一个函数是异步的
        //     如果async函数内没有await, 那么async没有意义的, 全是同步的内容
        //     只有遇到了await开始往下, 才是异步的开始

        // function fn() {
        //     let num = 1
        //     console.log(num)
        // }
        // fn()
        // console.log(2)



        // ============================== 核心2 ==============================
        // await 要用在 async 函数中




        // ============================== 核心3 ==============================
        // await 后面一般会跟一个promise对象,  await会阻塞async函数的执行,
        //     直到等到 promise成功的结果(resolve的结果)

        // async function fn() {
        //     const { data } = await axios.get('http://ajax-api.itheima.net/api/news')
        //     console.log(data);
        // }
        // fn()



        // ============================== 核心4 ==============================
        //   await 只会等待 promise 成功的结果, 如果失败了会报错, 需要 try catch
        try {
            async function fn() {
                const { data } = await axios.get('http://ajax-api.itheima.net/api/news11')
                console.log(data);
            }
            fn()
        }
        catch {
            (err) => {
                console.log(err);
            }
        }

        


        // try catch 语法

    </script>
</body>

</html>